package com.cell.api.application.netty.utils;

/**
 * <p>
 * 字节工具类
 * </p>
 *
 * @author zdy
 * @date 2021/11/8
 */
public class ByteUtils {

    /**
     * 获取高低位字节
     *
     * @param dataLen 数据长度
     * @return 高低位字节数组
     */
    public static byte[] getLowHighByte(int dataLen) {
        byte[] lowHighByte = new byte[2];
        //低位
        lowHighByte[0] = (byte) (0xFF & dataLen);
        //高位
        lowHighByte[1] = (byte) ((dataLen >> 8) & 0xFF);
        return lowHighByte;
    }


    /**
     * 数据高低位合成数字
     *
     * @param dataLength 数据长度高低位数组
     * @return 数据长度
     */
    public static int getLowHighByteInt(byte[] dataLength) {
        return (dataLength[0] & 0xFF) | ((dataLength[1] & 0xFF) << 8);
    }


    /**
     * 字节转换为数字
     *
     * @return 数据长度
     */
    public static int getInt(byte data) {
        return data & 0xFF;
    }

    /**
     * 字节转换为字符串
     *
     * @return 数据长度
     */
    public static String getString(byte[] data) {
        return new String(data);
    }
}
